package com.weavernorth.action.dataToMDM;

import com.weavernorth.humanresource.SalarRangeUtil;
import com.weavernorth.util.Logger4jUtil;
import com.weavernorth.util.MyCommonUtils;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;

import java.util.Iterator;

/**
 * @Author: bruseewang
 * @Package: com.weavernorth.action.dataToMDM
 * @date: 2020/9/3 15:33
 * @description: 【品牌】渠道SAP系统维护申请流程 数据传送至SAP
 */
public class mdDataToMDM implements Action {
    @Override
    public String execute(RequestInfo requestInfo) {
        Logger log= Logger4jUtil.getLoggerByName("/action/dataToMDM/");
        BaseBean bb=new BaseBean();
        //推送
        SalarRangeUtil salarRangeUtil = new SalarRangeUtil();
        log.info("门店流程数据传至SAP数据开始。。。");
        RecordSet rs= new RecordSet();
        RecordSet rs_new= new RecordSet();
        //请求id
        String strRequestid = requestInfo.getRequestid();
        log.info("流程requestid=" + strRequestid);
        String strTable = requestInfo.getRequestManager().getBillTableName();
        log.info("表名：" + strTable);
        String strSql="select a.* from "+strTable+" a where a.requestid="+strRequestid+"";
        log.info("执行查询语句："+strSql);
        rs.executeQuery(strSql);
        String strghbm="";
        while (rs.next()){
            //获取当前流程的规划编码
            strghbm = Util.null2String(rs.getString("ghbm"));
            log.info("规划编码：" + strghbm);
        }
        //报文请求体
        StringBuffer requestXml = new StringBuffer();
        //拼接请求体
        requestXml.append("<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:urn='urn:sap-com:document:sap:rfc:functions'>" +
                "<soapenv:Header/><soapenv:Body><urn:ZF_IF089_CUSTOMER_CREATE_MDM>");
        if(!"".equals(strghbm)){
            //根据规划编码获取建模表数据
            //省/直辖市/自治区：sszzq 改为 szxszzqsap
            //sx 改为 sxsap
            String strDataSql="SELECT a.bdfs,a.mdmcode,a.jyxq,a.glcs,a.dpmc,a.sapbm,a.dz,a.yzbm,a.htkl,a.jgtx,a.ysymj,a.kdriq,a.bdsj,a.zjzxsj,a.dpxx,a.szxszzqsap,a.sx,a.sxsap,a.xsap,a.khyxmc,a.jsdzdh,a.jydq,\n" +
                    "a.yxgslx,a.sh,a.gsmc,a.gsjc,a.sfej,a.ejkhmc,a.dpwz,a.ssqy,a.ylc,a.ghbm,a.scmcssjd,a.sclylsfdmc,case a.sffgs WHEN 0 THEN 'X' ELSE '' END sffgs,\n" +
                    "a.zhcyr,a.yxzh,a.fkfbm,a.fktj,a.tykm,t1.prop420453 AS zhanghu,t2.prop420453 AS kcdd,t3.prop420453 AS dppp,\n" +
                    "t4.prop420453 AS lcpl,t5.prop420453 AS xslx,t6.prop420453 AS syfs,t7.prop420453 AS yt,t8.prop420453 AS jyms,\n" +
                    "t9.prop420453 AS ydplx,t10.prop420453 AS dpjb,t11.prop420453 AS xsxz,t12.prop420453 AS frgs,t13.prop420453 AS fhgc,\n" +
                    "t14.prop420452 AS qydmms,t14.prop420453 AS qydm,t15.prop420452 AS qydmmrms,t15.prop420453 AS qydmmr,t16.prop420453 AS xszz,t17.prop420453 AS gsdm,a.DPZT,\n" +
                    "a.Sapjbm,a.xxdz " +
                    " FROM uf_md_lc_qdxkfxsj a " +
                    "LEFT JOIN uf_mdm_lc_data t1 ON a.zhanghu=t1.code " +
                    "LEFT JOIN uf_mdm_lc_data t2 ON a.kcdd=t2.code " +
                    "LEFT JOIN uf_mdm_lc_data t3 ON a.dppp=t3.code " +
                    "LEFT JOIN uf_mdm_lc_data t4 ON a.lcpl=t4.code " +
                    "LEFT JOIN uf_mdm_lc_data t5 ON a.xslx=t5.code " +
                    "LEFT JOIN uf_mdm_lc_data t6 ON a.syfs=t6.code " +
                    "LEFT JOIN uf_mdm_lc_data t7 ON a.yt=t7.code " +
                    "LEFT JOIN uf_mdm_lc_data t8 ON a.jyms=t8.code " +
                    "LEFT JOIN uf_mdm_lc_data t9 ON a.ydplx=t9.code " +
                    "LEFT JOIN uf_mdm_lc_data t10 ON a.dpjb=t10.code " +
                    "LEFT JOIN uf_mdm_lc_data t11 ON a.xsxz=t11.code " +
                    "LEFT JOIN uf_mdm_lc_data t12 ON a.frgs=t12.code " +
                    "LEFT JOIN uf_mdm_lc_data t13 ON a.fhgc=t13.code " +
                    "LEFT JOIN uf_mdm_lc_data t14 ON a.qydm=t14.code " +
                    "LEFT JOIN uf_mdm_lc_data t15 ON a.qydmmr=t15.code " +
                    "LEFT JOIN uf_mdm_lc_data t16 ON a.xszz=t16.code "+
                    "LEFT JOIN uf_mdm_lc_data t17 ON a.gsdm=t17.code where  a.id='"+strghbm+"'";
            log.info("sql执行语句："+strDataSql);
            rs_new.executeQuery(strDataSql);
            while (rs_new.next()) {
                String strmdmcode = Util.null2String(rs_new.getString("mdmcode"));
                log.info("MDM编码：" + strmdmcode);
                String strdpmc = Util.null2String(rs_new.getString("dpmc"));
                log.info("客户名称：" + strdpmc);
                String strzhanghu = Util.null2String(rs_new.getString("zhanghu"));
                log.info("账户组：" + strzhanghu);
                String strdz = Util.null2String(rs_new.getString("dz"));
                log.info("地址：" + strdz);
                String stryzbm = Util.null2String(rs_new.getString("yzbm"));
                log.info("邮政编码：" + stryzbm);
                String strkcdd = Util.null2String(rs_new.getString("kcdd"));
                log.info("库存地点：" + strkcdd);
                String strdppp = Util.null2String(rs_new.getString("dppp"));
                log.info("品牌编码：" + strdppp);
                String strlcpl = Util.null2String(rs_new.getString("lcpl"));
                log.info("男女装编码：" + strlcpl);
                String strxslx = Util.null2String(rs_new.getString("xslx"));
                log.info("厅店类型编码：" + strxslx);
                String strs_newyfs = Util.null2String(rs_new.getString("syfs"));
                log.info("收银方式编码：" + strs_newyfs);
                String stryt = Util.null2String(rs_new.getString("yt"));
                log.info("业态编码：" + stryt);
                String strbdfs = Util.null2String(rs_new.getString("bdfs"));
                log.info("闭店方式：" + strbdfs);
                String strjyms = Util.null2String(rs_new.getString("jyms"));
                log.info("经营模式编码：" + strjyms);
                String strhtkl = Util.null2String(rs_new.getString("htkl"));
                log.info("合同扣率：" + strhtkl);
                String strydplx = Util.null2String(rs_new.getString("ydplx"));
                log.info("店铺类型编码：" + strydplx);
                String strdpjb = Util.null2String(rs_new.getString("dpjb"));
                log.info("店铺级别编码：" + strdpjb);
                String strxsxz = Util.null2String(rs_new.getString("xsxz"));
                log.info("销售小组编码：" + strxsxz);
                String strjgtx = Util.null2String(rs_new.getString("jgtx"));
                log.info("价格体系：" + strjgtx);
                String strysymj = Util.null2String(rs_new.getString("ysymj"));
                log.info("店铺面积：" + strysymj);
                String strkdriq = Util.null2String(rs_new.getString("kdriq"));
                log.info("开店日期：" + strkdriq);
                String strbdsj = Util.null2String(rs_new.getString("bdsj"));
                log.info("关店日期：" + strbdsj);
                String strzjzxsj = Util.null2String(rs_new.getString("zjzxsj"));
                log.info("最近装修日期：" + strzjzxsj);
                String strdpxx = Util.null2String(rs_new.getString("dpxx"));
                log.info("厅店形象编码：" + strdpxx);
                String strs_newszzq = Util.null2String(rs_new.getString("szxszzqsap"));
                log.info("物理省份：" + strs_newszzq);
                String strsx = Util.null2String(rs_new.getString("sxsap"));
                log.info("物理城市：" + strsx);
                String strfrgs = Util.null2String(rs_new.getString("frgs"));
                log.info("法人公司编码：" + strfrgs);
                String stryhmc = Util.null2String(rs_new.getString("khyxmc"));
                log.info("银行名称：" + stryhmc);
                String strfhgc = Util.null2String(rs_new.getString("fhgc"));
                log.info("发货工厂编码：" + strfhgc);
                String strjsdzdh = Util.null2String(rs_new.getString("jsdzdh"));
                log.info("金税地址电话：" + strjsdzdh);
                String strjydq = Util.null2String(rs_new.getString("jydq"));
                log.info("经营大区：" + strjydq);
                String stryxgslx = Util.null2String(rs_new.getString("yxgslx"));
                log.info("客户分类：" + stryxgslx);
                String strsh = Util.null2String(rs_new.getString("sh"));
                log.info("税号：" + strsh);
                String strgsmc = Util.null2String(rs_new.getString("gsmc"));
                log.info("公司全称代码：" + strgsmc);
                String strgsjc = Util.null2String(rs_new.getString("gsjc"));
                log.info("公司简称：" + strgsjc);
                String strsfej = Util.null2String(rs_new.getString("sfej"));
                log.info("是否二级：" + strsfej);
                String strejkhmc = Util.null2String(rs_new.getString("ejkhmc"));
                log.info("二级客户：" + strejkhmc);
                String strdpwz = Util.null2String(rs_new.getString("dpwz"));
                log.info("厅店位置：" + strdpwz);
                String strssqy = Util.null2String(rs_new.getString("ssqy"));
                log.info("地区：" + strssqy);
                String strylc = Util.null2String(rs_new.getString("ylc"));
                log.info("楼层：" + strylc);
                //String strghbm= Util.null2String(rs_new.getString("ghbm"));
                log.info("BPM主编码：" + strghbm);
                String strs_newcmcssjd = Util.null2String(rs_new.getString("scmcssjd"));
                log.info("商场名称/街边店所属区道路：" + strs_newcmcssjd);
                String strs_newclylsfdmc = Util.null2String(rs_new.getString("sclylsfdmc"));
                log.info("商场/旅游零售分店名称：" + strs_newclylsfdmc);
                String strs_newffgs = Util.null2String(rs_new.getString("sffgs"));
                log.info("是否分公司：" + strs_newffgs);
                String strqydmms = Util.null2String(rs_new.getString("qydmms"));
                log.info("权益品牌描述：" + strqydmms);
                String strqydm = Util.null2String(rs_new.getString("qydm"));
                log.info("权益品牌代码：" + strqydm);
                String strqydmmrms = Util.null2String(rs_new.getString("qydmmrms"));
                log.info("权益品牌描述-默认：" + strqydmmrms);
                String strqydmmr = Util.null2String(rs_new.getString("qydmmr"));
                log.info("权益品牌代码-默认：" + strqydmmr);
                String strkhyxmc = Util.null2String(rs_new.getString("khyxmc"));
                log.info("银行名称：" + strkhyxmc);
                String strzhcyr = Util.null2String(rs_new.getString("zhcyr"));
                log.info("账户持有人：" + strzhcyr);
                String stryxzh = Util.null2String(rs_new.getString("yxzh"));
                log.info("银行账户：" + stryxzh);
                String strxszz = Util.null2String(rs_new.getString("xszz"));
                log.info("销售组织：" + strxszz);
                String strfkfbm = Util.null2String(rs_new.getString("fkfbm"));
                log.info("付款方：" + strfkfbm);
                String strfktj = Util.null2String(rs_new.getString("fktj"));
                log.info("付款条件：" + strfktj);
                String strtykm = Util.null2String(rs_new.getString("tykm"));
                log.info("统驭科目：" + strtykm);
                String strgsdm = Util.null2String(rs_new.getString("gsdm"));
                log.info("公司代码：" + strgsdm);
                String strsapbm = Util.null2String(rs_new.getString("sapbm"));
                log.info("sap編碼：" + strsapbm);
                String strglcs = Util.null2String(rs_new.getString("glcs"));
                log.info("管理城市：" + strglcs);
                String strjyxq=Util.null2String(rs_new.getString("jyxq"));
                log.info("经营小区：" + strjyxq);
                String strDpzt=Util.null2String(rs_new.getString("DPZT"));
                log.info("店铺状态：" + strDpzt);
                String strSapjbm=Util.null2String(rs_new.getString("Sapjbm"));
                log.info("SAP旧编码：" + strSapjbm);
                String strxxdz=Util.null2String(rs_new.getString("xxdz"));
                log.info("详细地址：" + strxxdz);
                String strxsap=Util.null2String(rs_new.getString("xsap"));
                log.info("县-sap：" + strxsap);

                requestXml.append("<I_CUSTOMER>");
                //客户编号
                requestXml.append("<KUNNR>"+strsapbm+"</KUNNR>");
                //客户名称
                requestXml.append("<NAME1>" + strdpmc + "</NAME1>");
                //客户账户组
                requestXml.append("<KTOKD>"+strzhanghu+"</KTOKD>");
                //公司标识
                requestXml.append("<VBUND></VBUND>");
                //客户分类
                requestXml.append("<KUKLA>"+stryxgslx+"</KUKLA>");
                //税号2
                requestXml.append("<STCD2></STCD2>");
                //税号3
                requestXml.append("<STCD3>"+ strsh  +"</STCD3>");
                //增值税登记号
                requestXml.append("<STCEG></STCEG>");
                //增值税义务
                requestXml.append("<STKZU></STKZU>");
                //自然人
                requestXml.append("<STKZN></STKZN>");
                //权限组
                requestXml.append("<BEGRU></BEGRU>");
                //供应商或债权人的帐号
                requestXml.append("<LIFNR></LIFNR>");
                //旧编码
                requestXml.append("<ZOLDCODE>" + strSapjbm + "</ZOLDCODE>");
                //品牌编码
                requestXml.append("<ZBRAND_ID>" + strdppp + "</ZBRAND_ID>");
                //男女装编码
                requestXml.append("<ZGENDER_ID>" + strlcpl + "</ZGENDER_ID>");
                //厅店类型编码
                requestXml.append("<ZTDTP_ID></ZTDTP_ID>");
                //季节性厅编码
                requestXml.append("<ZSEASON_ID>" + strxslx + "</ZSEASON_ID>");
                //收银方式编码
                requestXml.append("<ZSYFS_ID>" + strs_newyfs + "</ZSYFS_ID>");
                //业态编码
                requestXml.append("<ZYT_ID>" + stryt + "</ZYT_ID>");
                //删除标识符
//                requestXml.append("<LOEVM></LOEVM>");
                //经营模式
                requestXml.append("<ZJYMS_ID>"+strjyms+"</ZJYMS_ID>");
                //合同扣率
                requestXml.append("<ZHTKL>" + strhtkl + "</ZHTKL>");
                //店铺类型编码
                requestXml.append("<ZSTTP_ID>" + strydplx + "</ZSTTP_ID>");
                //店铺级别编码
                requestXml.append("<ZLEVEL_ID>" + strdpjb + "</ZLEVEL_ID>");
                //销售小组编码
                requestXml.append("<ZGROUP_ID>" + strxsxz + "</ZGROUP_ID>");
                //所属经销商
                if (strzhanghu.equals("Z005")){//如果所属账户组Z005
                    log.info("所属经销商："+strgsmc);
                    requestXml.append("<ZSSJXS_ID>" + strgsmc + "</ZSSJXS_ID>");
                }else{
                    requestXml.append("<ZSSJXS_ID></ZSSJXS_ID>");
                }
                //价格体系
                requestXml.append("<ZPRLS_NO>" + strjgtx + "</ZPRLS_NO>");
                //店铺面积(m2)
                requestXml.append("<ZDPMJ>" + strysymj + "</ZDPMJ>");
                //开店日期
                requestXml.append("<ZOPEN>" + strkdriq + "</ZOPEN>");
                //关店日期
                requestXml.append("<ZCLOSE>" + strbdsj + "</ZCLOSE>");
                //最近装修日期
                requestXml.append("<ZZXDT_F>" + strzjzxsj + "</ZZXDT_F>");
                //厅店形象编码
                requestXml.append("<ZIMAGE_ID>" + strdpxx + "</ZIMAGE_ID>");
                //城市级别编码
                requestXml.append("<ZRANK_ID></ZRANK_ID>");
                //国家
                requestXml.append("<LAND1>CN</LAND1>");
                //地区（省/自治区/直辖市、市、县）
                requestXml.append("<REGION>" + strssqy + "</REGION>");
                //物理省份编码
                requestXml.append("<ZPROVI_ID>" + strs_newszzq + "</ZPROVI_ID>");
                //物理城市编码
                requestXml.append("<ZCITY_ID>" + strsx + "</ZCITY_ID>");
                //店长
                requestXml.append("<ZDZ_NO></ZDZ_NO>");
                //店长手机
                requestXml.append("<ZDZ_TEL></ZDZ_TEL>");
                //法人公司编码
                requestXml.append("<ZFRGS>" + strfrgs + "</ZFRGS>");
                //发货工厂编码
                requestXml.append("<ZWERKS>" + strfhgc + "</ZWERKS>");
                //是否领峰店
                requestXml.append("<ZXF></ZXF>");
                //金税地址电话
                requestXml.append("<ZDZDH>" + strjsdzdh + "</ZDZDH>");
                //经营大区
                requestXml.append("<ZAREA_ID>" + strjydq + "</ZAREA_ID>");

                //搜索词 1
                requestXml.append("<SORT1></SORT1>");
                //搜索词 2
                requestXml.append("<SORT2></SORT2>");

                //排序字段
                requestXml.append("<SORTL>"+strs_newffgs+"</SORTL>");
                //代收人姓名
                requestXml.append("<NAME_CO></NAME_CO>");
                //街道2
                requestXml.append("<STR_SUPPL1></STR_SUPPL1>");
                //街道
                requestXml.append("<STREET>"+strxxdz+"</STREET>");
                //街道 3
                requestXml.append("<STR_SUPPL2></STR_SUPPL2>");
                //城市邮政编码
                requestXml.append("<POST_CODE1>" + stryzbm + "</POST_CODE1>");
                //第一个电话号码：区号 + 号码
                requestXml.append("<TEL1_NUMBR></TEL1_NUMBR>");
                //第一个传真号: 拨号 + 编号
                requestXml.append("<FAX_NUMBER></FAX_NUMBER>");
                //第一个传真号: 拨号 + 编号
                requestXml.append("<FAX_NUMBER123></FAX_NUMBER123>");
                //商场名称/街边店所属区道路
                requestXml.append("<ZSCMC></ZSCMC>");
                //商场/旅游零售分店名称
                requestXml.append("<ZFDMC></ZFDMC>");
                //工厂
                requestXml.append("<WERKS></WERKS>");
                //库存地点
                requestXml.append("<LGORT>" + strkcdd + "</LGORT>");
                //管理城市
                requestXml.append("<ZYLZD1></ZYLZD1>");
                //楼层
                requestXml.append("<ZYLZD2>"+strylc+"</ZYLZD2>");
                //店铺状态
                requestXml.append("<ZYLZD3>" + strDpzt + "</ZYLZD3>");
                //SAP平台代码
                requestXml.append("<ZYLZD4></ZYLZD4>");
                //公司全称代码
                requestXml.append("<ZYLZD5>" + strgsmc + "</ZYLZD5>");
                //公司简称
                requestXml.append("<ZYLZD6>" + strgsjc + "</ZYLZD6>");
                //是否二级
                requestXml.append("<ZYLZD7>" + strsfej + "</ZYLZD7>");
                //二级客户
                requestXml.append("<ZYLZD8>" + strejkhmc + "</ZYLZD8>");
                //厅店位置（边厅位置）
                requestXml.append("<ZYLZD9>" + strdpwz + "</ZYLZD9>");
                //管理城市
                requestXml.append("<ZYLZD10>"+strglcs+"</ZYLZD10>");
                //MDM 消息标识
                requestXml.append("<I_UUID></I_UUID>");
                //权益描述
                requestXml.append("<ZYLZD11>" + strqydmms + "</ZYLZD11>");
                //权益代码
                requestXml.append("<ZYLZD12>" + strqydm + "</ZYLZD12>");
                //权益描述-默认
                requestXml.append("<ZYLZD13>" + strqydmmrms + "</ZYLZD13>");
                //权益代码-默认
                requestXml.append("<ZYLZD14>" + strqydmmr + "</ZYLZD14>");
                //经营小区
                requestXml.append("<ZYLZD15>" + strjyxq + "</ZYLZD15>");
                //营业执照名称
                requestXml.append("<ZYLZD16></ZYLZD16>");
                //预留字段
                requestXml.append("<ZYLZD17>"+strxsap+"</ZYLZD17>");
                //预留字段
                requestXml.append("<ZYLZD18></ZYLZD18>");
                //预留字段
                requestXml.append("<ZYLZD19></ZYLZD19>");
                //预留字段
                requestXml.append("<ZYLZD20></ZYLZD20>");
                requestXml.append("</I_CUSTOMER>");
                requestXml.append("<I_MSGID></I_MSGID>");
                requestXml.append("<I_SENDR></I_SENDR>");

                //region[---公司信息---]
                log.info("公司代码："+strsapbm);
                if(!"".equals(strgsdm)) {
                    requestXml.append("<T_KNB1_I> <item>");
                    //客户编号
                    requestXml.append("<KUNNR>" + strsapbm + "</KUNNR>");
                    //公司代码
                    requestXml.append("<BUKRS>" + strgsdm + "</BUKRS>");
                    //总帐中的统驭科目
                    requestXml.append("<AKONT>" + strtykm + "</AKONT>");
                    //总部科目(在分支机构的科目中)---表单要新加总部字段9100040
                    requestXml.append("<KNRZE></KNRZE>");
                    //权限组
                    requestXml.append("<BEGRU></BEGRU>");
                    //根据分配号排序代码
                    requestXml.append("<ZUAWA></ZUAWA>");
                    //付款条件代码
                    requestXml.append("<ZTERM>" + strfktj + "</ZTERM>");
                    //标志: 在客户和供应商之间清算
                    requestXml.append("<XVERR></XVERR>");
                    //实际盘点冻结标识
//                requestXml.append("<SPERR></SPERR>");
                    requestXml.append("</item> </T_KNB1_I>");
                }
                //endregion

                //region[----银行信息---]
                if(!"".equals(stryxzh)&&!"".equals(strkhyxmc)) {
                    requestXml.append("<T_KNBK_I><item>");
                    //客户编号
                    requestXml.append("<KUNNR>" + strsapbm + "</KUNNR>");
                    //银行国家代码
                    requestXml.append("<BANKS>CN</BANKS>");
                    //银行编号
                    requestXml.append("<BANKL></BANKL>");
                    //银行帐户号码
                    requestXml.append("<BANKN>" + stryxzh + "</BANKN>");
                    //银行帐户的参考规定
                    requestXml.append("<BKREF></BKREF>");
                    //帐户持有人姓名
                    requestXml.append("<KOINH>" + strzhcyr + "</KOINH>");
                    //银行名称
                    requestXml.append("<BANK_NM>" + strkhyxmc + "</BANK_NM>");
                    requestXml.append("</item></T_KNBK_I>");
                }
                //endregion

                //region[---销售组织&业务伙伴---]
                log.info("销售组织："+strxszz);
                if(!"".equals(strxszz)) {
                    requestXml.append("<T_KNVV_I><item>");
                    //客户编号
                    requestXml.append("<KUNNR>" + strsapbm + "</KUNNR>");
                    //销售组织
                    requestXml.append("<VKORG>" + strxszz + "</VKORG>");
                    //分销渠道
                    requestXml.append("<VTWEG></VTWEG>");
                    //产品组
                    requestXml.append("<SPART></SPART>");
                    //销售办事处
                    requestXml.append("<VKBUR></VKBUR>");
                    //权限组
                    requestXml.append("<BEGRU></BEGRU>");
                    //销售组
                    requestXml.append("<VKGRP></VKGRP>");
                    //货币码
                    requestXml.append("<WAERS>CNY</WAERS>");
                    //装运条件
                    requestXml.append("<VSBED></VSBED>");
                    //从工厂
                    requestXml.append("<VWERK></VWERK>");
                    //付款条件代码
                    requestXml.append("<ZTERM></ZTERM>");
                    //信用控制范围
                    requestXml.append("<KKBER></KKBER>");
                    //客户的科目分配组
                    //
                    requestXml.append("<KTGRD>10</KTGRD>");
                    //客户组 1
                    requestXml.append("<KVGR1></KVGR1>");
                    //客户组 2
                    requestXml.append("<KVGR2></KVGR2>");
                    //客户组 3
                    requestXml.append("<KVGR3></KVGR3>");
                    //客户组 4
                    requestXml.append("<KVGR4></KVGR4>");
                    //客户组 5
                    requestXml.append("<KVGR5></KVGR5>");
                    //定价过程分配到该客户
                    requestXml.append("<KALKS></KALKS>");
                    //国际贸易条款 (部分1)
                    requestXml.append("<INCO1></INCO1>");
                    //国际贸易条件(部分2)
                    requestXml.append("<INCO2></INCO2>");
                    //客户付款担保过程
                    requestXml.append("<KABSS></KABSS>");
                    //定货冻结的客户
                    requestXml.append("<AUFSD></AUFSD>");
                    //客户交货冻结(销售范围)
                    requestXml.append("<LIFSD></LIFSD>");
                    //冻结客户出具发票( 销售和分销 )
                    requestXml.append("<FAKSD></FAKSD>");
                    //客户的销售冻结(销售范围)
//                requestXml.append("<CASSD></CASSD>");
                    //为每个销售订单定义一次性交货
                    requestXml.append("<AUTLF></AUTLF>");
                    //项目水平上的部分交货
                    requestXml.append("<KZTLF></KZTLF>");
                    //每个项目允许的部分交货最大数
                    requestXml.append("<ANTLF></ANTLF>");
                    //定价标识相关
                    requestXml.append("<PRFRE></PRFRE>");
                    //业务伙伴的客户号（付款方）
                    requestXml.append("<KUNNR2>" + strfkfbm + "</KUNNR2>");
                    //业务伙伴的客户号
                    requestXml.append("<KUNNR3></KUNNR3>");
                    //业务伙伴的客户号
                    requestXml.append("<KUNNR4></KUNNR4>");
                    //业务伙伴的客户号
                    requestXml.append("<KUNNR5></KUNNR5>");
                    //发货国(由该国家发货)
                    requestXml.append("<ALAND></ALAND>");
                    //税类别(营业税，联邦营业税，...)
                    requestXml.append("<TATYP></TATYP>");
                    //客户税分类
                    requestXml.append("<TAXKD></TAXKD>");

                    requestXml.append("</item></T_KNVV_I>");
                }
                //endregion
            }
        }
        requestXml.append("</urn:ZF_IF089_CUSTOMER_CREATE_MDM>\n" +
                "</soapenv:Body>" +
                "</soapenv:Envelope>");
        log.info("推送的xml:" + requestXml.toString());
        //获取地址请求地址
        //SAP测试地址(原始)：http://10.10.8.14:50000/dir/wsdl?p=ic/5ac9757d30fd3cff9f8e9c58cd074fb3
        String strSendUrl = bb.getPropValue("dataToMdm", "sapUrl");
        String strUsername = bb.getPropValue("dataToMdm", "username");
        String strPassWord = bb.getPropValue("dataToMdm", "password");

        log.info("sap接口地址："+strSendUrl);
        try {
            log.info("执行发送请求：");
            String responseXml = MyCommonUtils.sendPost(strSendUrl, requestXml.toString(), "utf-8",strUsername,strPassWord);
            log.info("返回的xml:" + responseXml);
            //返回标识
            String strReturnStatus = "";
            //返回信息
            String strMessage = "";
            Document doc = null;//解析返回值开始
            doc = DocumentHelper.parseText(responseXml);
            Iterator<Element> its2 = doc.selectNodes("//RTFLG").iterator();
            while (its2.hasNext()) {
                Element element = its2.next();
                strReturnStatus = element.getText();
                if (!"".equals(strReturnStatus)) {
                    break;
                }
            }
            log.info("返回值:" + strReturnStatus);
            //返回值失败时,则提示失败
            if ("E".equals(strReturnStatus)) {
                Iterator<Element> its3 = doc.selectNodes("//RTMSG").iterator();
                while (its3.hasNext()) {
                    Element element2 = its3.next();
                    strMessage = element2.getText();
                    if (!"".equals(strMessage)) {
                        break;
                    }
                }

            }
            if ("E".equals(strReturnStatus)) {
                requestInfo.getRequestManager().setMessagecontent(strMessage);
                return FAILURE_AND_CONTINUE;
            }
            else if ("".equals(strReturnStatus)||!"S".equals(strReturnStatus)) {
                requestInfo.getRequestManager().setMessagecontent("接口调用失败！");
                return FAILURE_AND_CONTINUE;
            }

        } catch (Exception e) {
            e.printStackTrace();
            requestInfo.getRequestManager().setMessagecontent("程序异常："+e.toString());
            return FAILURE_AND_CONTINUE;
        }
        log.info("门店流程数据传至SAP数据结束。。。");
        return SUCCESS;
    }
    /***
     * 传mdm的报文(原始版)
     */
    public void cust_xml_ToMdm(){
//        //客户名称
//        requestXml.append("<DATAINFO><DESC1>" + strdpmc + "</DESC1>");
//        //客户简称
//        requestXml.append("<DESC2>"+strgsjc+"</DESC2>");
//        //账户组
//        requestXml.append("<DESC3>" + strzhanghu + "</DESC3>");
//        //收货人姓名
//        requestXml.append("<DESC4></DESC4>");
//        //收货人电话
//        requestXml.append("<DESC5></DESC5>");
//        //收货地址1
//        requestXml.append("<DESC6>" + strdz + "</DESC6>");
//        //收货地址2
//        requestXml.append("<DESC7>" + strdz + "</DESC7>");
//        //城市邮政编码
//        requestXml.append("<DESC8>" + stryzbm + "</DESC8>");
//        //电话号码
//        requestXml.append("<DESC9></DESC9>");
//        //传真号
//        requestXml.append("<DESC10></DESC10>");
//        //库存地点
//        requestXml.append("<DESC11>" + strkcdd + "</DESC11>");
//        //旧编码
//        requestXml.append("<DESC12>" + strSapjbm + "</DESC12>");
//        //品牌编码
//        requestXml.append("<DESC13>" + strdppp + "</DESC13>");
//        //男女装编码
//        requestXml.append("<DESC14>" + strlcpl + "</DESC14>");
//        //厅店类型编码
//        requestXml.append("<DESC15></DESC15>");
//        //季节性厅编码
//        requestXml.append("<DESC16>" + strxslx + "</DESC16>");
//        //收银方式编码
//        requestXml.append("<DESC17>" + strs_newyfs + "</DESC17>");
//        //业态编码
//        requestXml.append("<DESC18>" + stryt + "</DESC18>");
//        //状态
//        requestXml.append("<DESC19>" + strbdfs + "</DESC19>");
//        //经营模式编码
//        requestXml.append("<DESC20>" + strjyms + "</DESC20>");
//        //合同扣率
//        requestXml.append("<DESC21>" + strhtkl + "</DESC21>");
//        //店铺类型编码
//        requestXml.append("<DESC22>" + strydplx + "</DESC22>");
//        //店铺级别编码
//        requestXml.append("<DESC23>" + strdpjb + "</DESC23>");
//        //销售小组编码
//        requestXml.append("<DESC24>" + strxsxz + "</DESC24>");
//        //长地址号
//        requestXml.append("<DESC25></DESC25>");
//        //省编码
//        requestXml.append("<DESC26></DESC26>");
//        //所属经销商
//        if (strzhanghu.equals("Z005")){//如果所属账户组Z005
//            log.info("所属经销商："+strgsmc);
//            requestXml.append("<DESC27>" + strgsmc + "</DESC27>");
//        }else{
//            requestXml.append("<DESC27></DESC27>");
//        }
//        //价格体系
//        requestXml.append("<DESC28>" + strjgtx + "</DESC28>");
//        //店铺面积
//        requestXml.append("<DESC29>" + strysymj + "</DESC29>");
//        //开店日期
//        requestXml.append("<DESC30>" + strkdriq + "</DESC30>");
//        //关店日期
//        requestXml.append("<DESC31>" + strbdsj + "</DESC31>");
//        //最近装修日期
//        requestXml.append("<DESC32>" + strzjzxsj + "</DESC32>");
//        //厅店形象编码
//        requestXml.append("<DESC33>" + strdpxx + "</DESC33>");
//        //城市级别编码
//        requestXml.append("<DESC34></DESC34>");
//        //国家
//        requestXml.append("<DESC35>CN</DESC35>");
//        //物理省份
//        requestXml.append("<DESC36>" + strs_newszzq + "</DESC36>");
//        //物理城市
//        requestXml.append("<DESC37>" + strsx + "</DESC37>");
//        //店长
//        requestXml.append("<DESC38></DESC38>");
//        //店长手机
//        requestXml.append("<DESC39></DESC39>");
//        //法人公司编码
//        requestXml.append("<DESC40>" + strfrgs + "</DESC40>");
//        //银行名称
//        requestXml.append("<DESC41>" + strkhyxmc + "</DESC41>");
//        //发货工厂编码
//        requestXml.append("<DESC42>" + strfhgc + "</DESC42>");
//        //是否领峰店
//        requestXml.append("<DESC43></DESC43>");
//        //金税地址电话
//        requestXml.append("<DESC44>" + strjsdzdh + "</DESC44>");
//        //贸易伙伴
//        requestXml.append("<DESC45></DESC45>");
//        //经营大区
//        requestXml.append("<DESC46>" + strjydq + "</DESC46>");
//        //客户分类
//        requestXml.append("<DESC48>" + stryxgslx + "</DESC48>");
//        //税号
//        requestXml.append("<DESC49>" + strsh + "</DESC49>");
//        //店铺状态
//        requestXml.append("<DESC56>"+strDpzt+"</DESC56>");
//        //平台
//        requestXml.append("<DESC57></DESC57>");
//        //公司全称代码
//        requestXml.append("<DESC58>" + strgsmc + "</DESC58>");
//        //公司简称
//        requestXml.append("<DESC64>" + strgsjc + "</DESC64>");
//        //是否二级
//        requestXml.append("<DESC65>" + strsfej + "</DESC65>");
//        //二级客户
//        requestXml.append("<DESC69>" + strejkhmc + "</DESC69>");
//        //厅店位置
//        requestXml.append("<DESC76>" + strdpwz + "</DESC76>");
//        //地区
//        requestXml.append("<DESC77>" + strssqy + "</DESC77>");
//        //管理城市
//        requestXml.append("<DESC78>"+strglcs+"</DESC78>");
//        //楼层
//        requestXml.append("<DESC79>" + strylc + "</DESC79>");
//        //SAP主编码
//        requestXml.append("<DESC81>"+strsapbm+"</DESC81>");
//        //BPM主编码
//        requestXml.append("<DESC82>" + strghbm + "</DESC82>");
//        //MDM主编码
//        requestXml.append("<CODE>"+strmdmcode+"</CODE>");
//        //商场名称/街边店所属区道路
//        requestXml.append("<DESC83>" + strs_newcmcssjd + "</DESC83>");
//        //商场/旅游零售分店名称
//        requestXml.append("<DESC84>" + strs_newclylsfdmc + "</DESC84>");
//        //是否分公司
//        requestXml.append("<DESC85>" + strs_newffgs + "</DESC85>");
//        //权益品牌描述
//        requestXml.append("<DESC86>" + strqydmms + "</DESC86>");
//        //经营小区
//        requestXml.append("<DESC87>" + strjyxq + "</DESC87>");
//        //权益品牌代码
//        requestXml.append("<DESC88>" + strqydm + "</DESC88>");
//        //权益品牌描述-默认
//        requestXml.append("<DESC89>" + strqydmmrms + "</DESC89>");
//        //权益品牌代码-默认
//        requestXml.append("<DESC100>" + strqydmmr + "</DESC100>");
//        if (!"Z005".equals(strzhanghu)) {
//            requestXml.append("<SPECIALITYCODES>");
//            //=========银行信息===========
//            requestXml.append("<A03><LIST>");
//            //银行国家
//            requestXml.append("<A0301>CN</A0301>");
//            //银行账户
//            requestXml.append("<A0302>" + stryxzh + "</A0302>");
//            //银行名称
//            requestXml.append("<A0303>" + strkhyxmc + "</A0303>");
//            //银行代码
//            requestXml.append("<A0304></A0304>");
//            //账户持有人
//            requestXml.append("<A0305>" + strzhcyr + "</A0305>");
//            requestXml.append("</LIST></A03>");
//            //========销售组织信息========
//            requestXml.append("<A04><LIST>");
//            //销售组织
//            requestXml.append("<A0401>" + strxszz + "</A0401>");
//            //税分类
//            requestXml.append("<A0403>1</A0403>");
//            //账户分配组
//            requestXml.append("<A0404>10</A0404>");
//            //销售组织状态
//            requestXml.append("<A0405>0</A0405>");
//            //客户定价过程
//            requestXml.append("<A0406></A0406>");
//            //售达方
//            requestXml.append("<A0407></A0407>");
//            //收票方
//            requestXml.append("<A0408></A0408>");
//            //付款方
//            requestXml.append("<A0409>" + strfkfbm + "</A0409>");
//            //送达方
//            requestXml.append("<A0410></A0410>");
//            //货币
//            requestXml.append("<A0411>CNY</A0411>");
//            //付款条件
//            requestXml.append("<A0412>" + strfktj + "</A0412>");
//            requestXml.append("</LIST></A04>");
//
//            //======业务往来信息===========
//            requestXml.append("<A05><LIST>");
//            //公司代码
//            requestXml.append("<A0501>" + strgsdm + "</A0501>");
//            //公司代码状态
//            requestXml.append("<A0503>0</A0503>");
//            //统驭科目
//            requestXml.append("<A0504>" + strtykm + "</A0504>");
//            //总部
//            requestXml.append("<A0505></A0505>");
//            requestXml.append("</LIST></A05>");
//            //======电话信息===========
//            requestXml.append("<A06><LIST>");
//            //区号
//            requestXml.append("<A0601></A0601>");
//            //电话
//            requestXml.append("<A0602></A0602>");
//            requestXml.append("</LIST></A06>");
//            requestXml.append("</SPECIALITYCODES>");
//        }
//        requestXml.append("</DATAINFO>");
    }
}
